package com.abl.core.service.sys;


import com.abl.core.domain.db.SysUser;
import com.abl.core.domain.project.TokenVO;
import com.abl.core.domain.project.PageSearch;
import com.abl.core.domain.wx.WxtMpLoginParam;
import com.mybatisflex.core.paginate.Page;

/**
 * 资源表服务
 */
public interface SysUserService {

    /**
     * 新增用户
     */
    boolean insert(SysUser param);

    boolean delete(String ids);

    /**
     * 修改
     */
    boolean update(SysUser param);

    /**
     * 查询集合
     */
    Page<SysUser> page(SysUser param, PageSearch pageSearch);


    boolean sysUserRegister(String account, String password, String type);

    TokenVO appLogin(String phoneMobile, String password);

    TokenVO sysLogin(String account, String password, String type);

    boolean userLogout();

    boolean resetUserPassword(String userIds, String newPassword);

    TokenVO refreshToken(String refreshToken);


    SysUser getUserInfoByAccount(String account);

    SysUser getUserInfoByPhoneMobile(String phoneMobile);

    SysUser appUserInfo();

    SysUser systemUserInfo();

    boolean resetMyPassword(String oldPassword, String newPassword);

    TokenVO wxMpNoPhoneLogin(WxtMpLoginParam wxtMpLoginParam);

    SysUser updateUserInfo(SysUser param);

//    JSONObject selectLtMpInfo(String type);
}
